<?php

abstract class Encode {
    /**
     * @static  detect
     *
     * Detecta o charset da string
     *
     * @param string $str   String que tera seu charset identificado
     *
     * @return  String
     * @author  Mario Vitor
     */
    private static function detect($str) {
  	return mb_detect_encoding($str.'x', 'UTF-8, ISO-8859-1');
    }
    /**
     * @static  forceUTF8
     *
     * Forca a string a ser codificada em utf-8
     *
     * @param string $str   String que sera forcada ao charset UTF
     *
     * @return  String
     * @author  Mario Vitor
     */
    public static function forceUTF8($str) {
  	if (strtoupper(self::detect($str))=='UTF-8')
  		return $str;
  	return mb_convert_encoding( $str, 'UTF-8', self::detect($str) );
    }
    /**
     * @static  forseISO
     *
     * Forca a string a ser codificada em ISO
     *
     * @param string $str   String que sera forcada ao charset ISO
     *
     * @return  String
     * @author  Mario Vitor
     */
    public static function forceISO($str) {
  	if ( strtoupper(self::detect($str)) == 'ISO-8859-1' )  {
  		return $str;
        }
  	return mb_convert_encoding( $str, 'ISO-8859-1', self::detect($str) );
    }

}

?>